package fr.p10.miage.l3c.formateurdenombre;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;

/**
 * Cette classe démontre le formatage d'un nombre décimal.
 * @author lom
 */
public class TestFormatageDecimal {
	public static void main(String[] args) {
		// Un nombre à formater. Remarquez le point décimal.
		double nombre = 9.3448774648476;
		double grandNombre = 123456670.556;
		
		// La classe NumberFormat est la classe abstraite de base pour tous le formateurs de nombre.
		// Elle permet de formater en tenant compte du pays:
		NumberFormat formatter= NumberFormat.getInstance(java.util.Locale.FRENCH);
		
		// La classe DecimalFormat est une sous-classe qui permet de formatter 
		// les nombres décimaux
    	DecimalFormat df = (DecimalFormat)formatter;
    	
    	// Afficher les séparateurs de milliers, et arrondir au centime
    	//(i.e. 2 chiffres après la virgule)
    	df.applyPattern("#,###,##0.00");
    	System.out.println("\nAfficher les séparateurs de milliers, et arrondir au centime :");
    	System.out.println(df.format(nombre));
    	System.out.println(df.format(grandNombre));
    	
    	// Arrondir seulement au centime
    	df.applyPattern("#0.00");
    	System.out.println("\nArrondir seulement au centime :");
    	System.out.println(df.format(nombre));
    	System.out.println(df.format(grandNombre));
    	
    	// Afficher une devise
    	df.applyPattern("#0.00 Euro");
    	System.out.println("\nAfficher une devise :");
    	System.out.println(df.format(nombre));
    	System.out.println(df.format(grandNombre));
    	
    	//Nombre à taille fixe en ajoutant des zeros
    	formatter.setMinimumIntegerDigits(12);
    	System.out.println("\nNombre à taille fixe en ajoutant des zeros :");
    	System.out.println(df.format(nombre));
    	System.out.println(df.format(grandNombre));
    	
		// NumberFormat peut parser un nombre :
		NumberFormat parseur = NumberFormat.getIntegerInstance(java.util.Locale.ENGLISH);
		try {
			Integer unEntier = parseur.parse("9").intValue();
			System.out.println("\nParser un nombre :");
			System.out.println(unEntier);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
	}
}
